package aiP.A3.FertigungKomponente.DataAccessLayer.Entity;

import aiP.A3.PersistenceService.iEntity;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * Created with IntelliJ IDEA.
 * User: Hero
 * Date: 22.05.14
 * Time: 13:51
 * To change this template use File | Settings | File Templates.
 */
@javax.persistence.Table(name = "AI_BAUTEIL", schema = "AIP", catalog = "")
//@javax.persistence.Table(name = "AI_BAUTEIL", schema = "HR", catalog = "")
@Entity
public class Bauteil implements iEntity {
    private int bauteilId;

    @javax.persistence.Column(name = "BAUTEIL_ID")
    @Id
    public int getBauteilId() {
        return bauteilId;
    }

    public void setBauteilId(int bauteilId) {
        this.bauteilId = bauteilId;
    }

    private String name;

    @javax.persistence.Column(name = "NAME")
    @Basic
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private BigDecimal gewicht;

    @javax.persistence.Column(name = "GEWICHT")
    @Basic
    public BigDecimal getGewicht() {
        return gewicht;
    }

    public void setGewicht(BigDecimal gewicht) {
        this.gewicht = gewicht;
    }

    private BigDecimal preis;

    @javax.persistence.Column(name = "PREIS")
    @Basic
    public BigDecimal getPreis() {
        return preis;
    }

    public void setPreis(BigDecimal preis) {
        this.preis = preis;
    }

    private BigInteger komplex;

    @javax.persistence.Column(name = "KOMPLEX")
    @Basic
    public BigInteger getKomplex() {
        return komplex;
    }

    public void setKomplex(BigInteger komplex) {
        this.komplex = komplex;
    }

    private Integer fertigungsauftragNr;

    @javax.persistence.Column(name = "FERTIGUNGSAUFTRAG_NR")
    @Basic
    public Integer getFertigungsauftragNr() {
        return fertigungsauftragNr;
    }

    public void setFertigungsauftragNr(Integer fertigungsauftragNr) {
        this.fertigungsauftragNr = fertigungsauftragNr;
    }

    private Integer stuecklisteNr;

    @javax.persistence.Column(name = "STUECKLISTE_NR")
    @Basic
    public Integer getStuecklisteNr() {
        return stuecklisteNr;
    }

    public void setStuecklisteNr(Integer stuecklisteNr) {
        this.stuecklisteNr = stuecklisteNr;
    }

    private Integer arbeitsplanNr;

    @javax.persistence.Column(name = "ARBEITSPLAN_NR")
    @Basic
    public Integer getArbeitsplanNr() {
        return arbeitsplanNr;
    }

    public void setArbeitsplanNr(Integer arbeitsplanNr) {
        this.arbeitsplanNr = arbeitsplanNr;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Bauteil bauteil = (Bauteil) o;

        if (bauteilId != bauteil.bauteilId) return false;
        if (arbeitsplanNr != null ? !arbeitsplanNr.equals(bauteil.arbeitsplanNr) : bauteil.arbeitsplanNr != null)
            return false;
        if (fertigungsauftragNr != null ? !fertigungsauftragNr.equals(bauteil.fertigungsauftragNr) : bauteil.fertigungsauftragNr != null)
            return false;
        if (gewicht != null ? !gewicht.equals(bauteil.gewicht) : bauteil.gewicht != null) return false;
        if (komplex != null ? !komplex.equals(bauteil.komplex) : bauteil.komplex != null) return false;
        if (name != null ? !name.equals(bauteil.name) : bauteil.name != null) return false;
        if (preis != null ? !preis.equals(bauteil.preis) : bauteil.preis != null) return false;
        if (stuecklisteNr != null ? !stuecklisteNr.equals(bauteil.stuecklisteNr) : bauteil.stuecklisteNr != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = bauteilId;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (gewicht != null ? gewicht.hashCode() : 0);
        result = 31 * result + (preis != null ? preis.hashCode() : 0);
        result = 31 * result + (komplex != null ? komplex.hashCode() : 0);
        result = 31 * result + (fertigungsauftragNr != null ? fertigungsauftragNr.hashCode() : 0);
        result = 31 * result + (stuecklisteNr != null ? stuecklisteNr.hashCode() : 0);
        result = 31 * result + (arbeitsplanNr != null ? arbeitsplanNr.hashCode() : 0);
        return result;
    }

    public String toString(){
        String tmp = "";
        if (komplex.equals("1"))
            tmp  = "komplex";
        return "ArtikelID: " + getBauteilId() + " Name: " + getName() + " Preis: " + getPreis() + " € " + tmp;
    }
}
